Game streaming, such as carried out by NVIDIA's GRID and PC2Shield platforms, is a challenging issue when it is conducted over the Internet or any other network with time-varying characteristics. While these networks are well-suited for transporting data, the rate at which it transports data is not constant. Variable latency (delay) and jitter (rapid variations in latency) present ongoing issues for time-sensitive data and impair quality of service (QoS).
Not only must these networks bear traffic that changes unpredictably, but any given data channel between a transmitter (e.g., server) and a receiver (e.g., client) is likely to include a variety of physical links of sundry types and capacities, such as Ethernet, 2.4 GHz or 5 GHz WiFi and cellular connections such as Long-Term Evolution (LTE) with different protocol layers. Adding to the complexity is that if the receiver is mobile, the physical links are likely to change as the receiver roams. Accordingly, characteristics of the data channel should be monitored such that the bandwidth it has for the transmission of data can be estimated. The rate and manner in which data is transmitted over the data channel may then be modified based on the estimated bandwidth. Various approaches and corresponding tools have been developed to estimate the bandwidth available to bear user data.
Some of the approaches involve using “probing” data packets to evaluate bandwidth. DietTOPP (Johnsson, et al., “DietTopp: A First Implementation and Evaluation of a Simplified Bandwidth Measurement Method,” In proc. of the Second Swedish National Computer Networking Workshop (SNCNW), Karlstad, 2004) and WBest (Li, et al., “WBest: a Bandwidth Estimation Tool for IEEE 802.11 Wireless Networks,” In Proceedings of 33rd IEEE Conference on Local Computer Networks (LCN), Montreal, Quebec, Canada, 2008) are two popular probing-based approaches. DietTOPP estimates available bandwidth by comparing the adapted probing rate and the corresponding data throughput. WBest uses a probing packet-pair dispersion technique to estimate the effective capacity of a wireless network and a probing packet train technique to infer mean and standard deviations of available bandwidth. Unfortunately, probing packets require their own bandwidth, representing overhead that decreases the bandwidth available for user data. Both DietTOPP and WBest require high numbers of probing packets to determine the maximum capacity of the data channel and thereby estimate the data channel bandwidth.
Various approaches and tools have been developed that do not require probing packets. Some are “single-layer” approaches, such as those that measure the Transmission Control Protocol (TCP) abstraction layer, e.g., Mascolo, et al., “TCP Westwood: Bandwidth Estimation for Enhanced Transport over Wireless Links,” MobiCom '01, pp. 287-297 (2001), and TCP in the context of IEEE 802.11, e.g., Yuan, et al., “A Novel Bandwidth Estimation Algorithm for IEEE 802.11 TCP Data Transmissions,” Wireless Communications and Networking Conference Workshops (WCNCW), pp. 377-382 (2012). Unfortunately, single-layer approaches do not accurately estimate the bandwidth of a data channel having links of disparate physical types with different abstraction layers, e.g., User Datagram Protocol (UDP). “Cross-layer” approaches do exist, e.g., IdleGap (Lee, et al., “Bandwidth Estimation in Wireless LANs for Multimedia Streaming Services,” In Proc. of IEEE ICME, July 2006, pp. 1181-1184 (2006)). Unfortunately, IdleGap obtains the wireless link idle rate from the Network Allocation Vector (NAV) and transmits it to the application layer. This requires additional data to be transmitted, which is intrusive and adds overhead into the data channel. Further, the estimates IdleGap produces are dependent on how lower layers of the network have been implemented. Thus, the estimates may not be reliable.